package org.rslai.autotest.core.page;

/**
 * html弹出对话框处理接口<br>
 * 包括：alert、confirm、prompt
 * @author rslai
 */
public interface Alert {

	/**
	 * alert单击确定按钮
	 * @return alert中显示的信息
	 */
	public String alertDismiss();

	/**
	 * 验证alert显示信息中包含指定内容后单击确定按钮
	 * @param containsMsg 包含的信息
	 * @return alert中显示的信息
	 */
	public String alertDismiss(String containsMsg);

	/**
	 * confirm单击确定按钮
	 * @return confirm中显示的信息
	 */
	public String confirmAccept();

	/**
	 * 验证confirm显示信息中包含指定内容后单击确定按钮
	 * @param containsMsg 包含的信息
	 * @return confirm中显示的信息
	 */
	public String confirmAccept(String containsMsg);

	/**
	 * confirm单击取消按钮
	 * @return confirm中显示的信息
	 */
	public String confirmDismiss();

	/**
	 * 验证confirm显示信息中包含指定内容后单击取消按钮
	 * @param containsMsg 包含的信息
	 * @return confirm中显示的信息
	 */
	public String confirmDismiss(String containsMsg);

	/**
	 * prompt单确定按钮
	 * @param answer 输入的答案
	 * @return prompt中显示的信息
	 */
	public String promptAccept(String answer);

	/**
	 * 验证prompt显示信息中包含指定内容后单击确定按钮
	 * @param containsMsg 包含的信息
	 * @param answer 输入的答案
	 * @return prompt中显示的信息
	 */
	public String promptAccept(String containsMsg, String answer);

	/**
	 * prompt单取消按钮
	 * @return prompt中显示的信息
	 */
	public String promptDismiss();

	/**
	 * 验证prompt显示信息中包含指定内容后单击取消按钮
	 * @param containsMsg 包含的信息
	 * @return prompt中显示的信息
	 */
	public String promptDismiss(String containsMsg);

	/**
	 * 是否出现alert
	 * @return true 出现，false 未出现
	 */
	public boolean isAlertPresent();

	/**
	 * 是否出现Prompt
	 * @return true 出现，false 未出现
	 */
	public boolean isPromptPresent();

	/**
	 * 是否出现confirm
	 * @return true 出现，false 未出现
	 */
	public boolean isConfirmPresent();

	/**
	 * 等待出现alert
	 * @return 等到返回true，没等到报TimeoutException异常
	 */
	public boolean waitAlertPresent();

	/**
	 * 等待出现alert
	 * @param waitTimeout 超时时间 (秒)
	 * @return 等到返回true，没等到报TimeoutException异常
	 */
	public boolean waitAlertPresent(int waitTimeout);

	/**
	 * 等待出现Confirm
	 * @return 等到返回true，没等到报TimeoutException异常
	 */
	public boolean waitConfirmPresent();

	/**
	 * 等待出现Confirm
	 * @param waitTimeout 超时时间 (秒)
	 * @return 等到返回true，没等到报TimeoutException异常
	 */
	public boolean waitConfirmPresent(int waitTimeout);

	/**
	 * 等待出现Prompt
	 * @return 等到返回true，没等到报TimeoutException异常
	 */
	public boolean waitPromptPresent();

	/**
	 * 等待出现Prompt
	 * @param waitTimeout 超时时间 (秒)
	 * @return 等到返回true，没等到报TimeoutException异常
	 */
	public boolean waitPromptPresent(int waitTimeout);

}
